Name: Metroid Console: Nintendo Version 2.0 05/July/2025 Written by: samurai goroh samuraigoroh@gmail.com ******************************************************************************* _____ ___ _____ ___ ___ _ ___ | | | __) (_ _) | _ | | | | | | \ | | | | | _) | | | _| | | | | | | | | |_|_|_| |___) |_| |_\_\ |___| |_| |___/ ******************************************************************************* 1.0 Flags 2.0 Hex Numbers 3.0 Bitwise Values 3.1 Controller Buttons 3.2 Decoded Password Bits 3.3 Decoded Password Bits - Items 3.4 Decoded Password Bits - Miniboss status 4.0 Lists 4.1 Game Mode 4.2 Title Mode 4.3 Item Slot 5.0 Mix 5.1 Samus Start/Suit Status ------------------------------------------------------------------------------- SORTED CODES ------------------------------------------------------------------------------- 000C XXXX Used for indirect jumping 0012 XX Controller 1 changed buttons 3.1 0013 XX Controller 2 changed buttons 3.1 0014 XX Controller 1 pressed buttons 3.1 0015 XX Controller 2 pressed buttons 3.1 0016 XX Controller 1 held auto-repeating buttons 3.1 0017 XX Controller 2 held auto-repeating buttons 3.1 0018 XX Controller 1 Auto-repeating buttons 3.1 0019 XX Controller 2 Auto-repeating buttons 3.1 001A XX NMI flag (0 = NMI in progress) 1.0 001B XX PPU data flag (1 = PPU data ready to be processed during NMI) 001C XX PPU palette data flag (1-base; indicate that a palette needs to be updated) 001D XX Engine mode (0 = game, 1 = title/password) 001E XX Game mode 4.1 001F XX Title mode 4.2 0020 XXXX Routine to run after timer expires? 0022 XX ? 0023 XX Current ROM bank loaded into $8000-$BFFF slot 2.0 0024 XX Bank swap pending flag (1 = yes) 1.0 0025 XX Stores value to be loaded into MMC1 Register 0 2.0 0026 XX ? 0027 XX ? 0028 XX Stores bits 3 and 4 for MMC1 register 3 2.0 0029 XX Counts down from 9 to 0 (1 per frame) 2.0 002A XX Timer. Counts down (1 per frame) when non-zero. 2.0 002B XX Timer. Counts down (1 per frame) when non-zero. 2.0 002C XX Timer. Counts down (10 per frame) when non-zero. 2.0 002D XX Frame counter. Counts up (1 per frame) 2.0 002E XX RNG 1 2.0 002F XX RNG 2 2.0 0030 XX *Initialized but unused 0031 XX Pause toggle (1=Paused) 1.0 0032 XX ? 0033 XXXX Pointer - Room data 2.0 0035 XXXX Pointer - Structure data 2.0 0037 XXXX Pointer - Output pointer into room data while decoding 2.0 0039 XXXX Pointer - Start of room data block 2.0 003B XXXX Pointer - Pointer table for (compressed) room layouts 2.0 003D XXXX Pointer - Pointer table for structures 2.0 003F XXXX Pointer - Combo definitions (macro/metatile/TSA/etc) 2.0 0041 XXXX Pointer - Pointer table for enemy animation sequences 2.0 0043 XXXX Pointer - 2nd half of previous table 2.0 0045 XXXX Pointer - Pointer table for enemy sprite layouts 2.0 0047 XXXX Pointer - Pointer table for enemy sprite tile numbers 2.0 0049 XX Current scroll direction (0=Up, 1=Down, 2=Left, 3=Right) 004A XX Temporary scroll direction variable 004B XX Index of object currently being processed (bullet, missile, etc) 004C XX Item Index? 004D XX Samus direction (0=right, 1=left) 004E XX Direction samus passed through door 004F XX Y Coord on map 2.0 0050 XX X Coord on map 2.0 0051 XX Y Coord on screen 2.0 0052 XX X Coord on screen 2.0 0053 XX Timer for footstep sounds 0054 XX ? 0055 XX Toggle if Samus is the object currently being processed 1.0 0056 XX Door Status 00 Not in a door 01 In a right-side door 02 In a left-side door 03 Scrolling up to center a door before room transition 04 Scrolling down to center a door before room transition 0057 XX Last Transition Info 00 Spawn 01 Entered right-side door from horizontal area 02 Entered left-side door from horizontal area 03 Entered door in vertical area, screen needs to be centered 04 Entered door in vertical area, screen is centered 0058 XX Samus transition info 01 to 0F Temporarily stores Samus' state when entering doors 10 scrolling direction to be toggled after transition. 20 scrolling to become horizontal after transition 0059 XX Delay before room transition 2.0 005A XX Index of room layout being loaded 2.0 005B XX Indexer for sprite RAM 2.0 0064 XX Lava physics toggle (01=yes) 1.0 0065 XX Timer 0066 XX ? 0067 XX Palette number for room object 0068 XX Palette number for room 0069 XX Temporary X variable 006A XX Temporary Y variable 006B XX Object attributes 006C XX Door on name table 3? (used to stop scrolling when a door is encountered) 006D XX Door on name table 0? 006E XX TENTHS of health to be added or subtracted (BCD) 006F XX TENS of health to be added or subtracted (BCD) 0070 XX Invincibility blink timer 2.0 0071 XX Updating projectile toggle (1 = yes) 1.0 0072 XX Damage push back direction (0=left, 1=right, FF=none) 0073 XX Used with exploding bomb so that the invincibility timer doesn't make you blink. 00 = don't blink when hit FF = blink when hit 0074 XX Area ID 10 = Brinstar 11 = Norfair 12 = Kraid 13 = Tourian 14 = Ridley 0075 XX *Initialized but unused 0076 XX Set to indicate palette will be toggled 0079 XX Item room music 00 Item room music not playing 01 Play item room music after room transition 80 Stop item room music after room transition 81 Item room music is playing 007A XX Write ending message toggle (1 = yes) 1.0 007B XX Credits rolling toggle (1 = yes) 1.0 007C XX Ending sprites are done loading toggle 1.0 007D XX Gameplay: Is samus standing on a frozen enemy toggle (1 = yes) Ending: Index to samus sprite graphic 007E XX Attribute of some sprites? 007F XX Color count index? 0080 XX Current Page of Credits 2.0 0081 XX End Message toggle (0=show, 1=erase) 1.0 0082 XX Color change counter 2.0 0083 XX Address pointer to Samus hand waving sprites in end 2.0 0084 XX Stores length of wave sprite data (10) 2.0 0092 XX Metroid binded to Samus toggle (1=yes) 1.0 0093 XX Maximum # of missiles Samus can grab in current room (resets after you go through as door) 0094 XX Maximum # of health pickups samus can grab in current room (resets after you go through as door) 0095 XX # of missiles samus has grabbed in current room 0096 XX # of health pickups samus has grabbed in current room 0097 XX ? 0098 XX Mother Brain Status (... = Mother Brain) 00 Nothing 01 ... in room 02 ... got hit 03 ... dying 04 ... disappearing 05 ... gone 06 Time bomb set 07 Time bomb exploded 08 Init mother brain 09 ... already dead 0A ... already dead 0099 XX # of times mother brain has been hit (dies at 32 hits) 00A0 XX Skree projectile table, 4 bytes per projectile. The projectile directions are, in order: left, top left, top right, right 00AF XX Bits 01 despawn timer 02 room Y position 04 room X position 08 screen number 00B7 XX Written to during title screen, never read 00B8 XX Written to during title screen, never read 00BB XX Written to during title screen, never read Title screen: 00BC XX "Cross-hair" sprite speed-up delay 00BD XX 32-frame delay before "cross-hair" sprite animation 00BF XX 1 = second crosshair animation 00C0 XX 1 = Flash screen during crosshair animation 00C1 XX Palette data index 00C2 XX Screen flash palette index 00C3 XX Indexer for start twinkle data 00C4 XX Palette fade Indexer 00C5 XX Unused 00C6 XX Cross-hair sprite index 00C7 XX 1 = Draw crosshair on screen 00C8 XX Set to 0 after sprite RAM load complete 00C9 to 00D7 XX Unused 00D8 XX After all title routines run twice, restarts intro music. (?) 00EA XX Temp storage for data of first address sound channel 00EB XX Desired address number in VolumeCntrlAdressTbl 00F0 XX Stores A and B button status in AreaInit. Never used. 00FA XX If bit 3 is set, PPU set to horizontal mirroring if bit 3 is clear, PPU is set to vertical 00FC XX Room Coordinate Y 00FD XX Room Coordinate X 00FE XX PPU Register $2000 00FF XX PPU Register $2001 0100 to 01FF is reserved for the hardware stack, but since the game does not need to use the entire stack, some of this space is used for game variables. The hardware stack starts at $01FF and works backward. 0106 XX Health Lower nibble -> fraction of health upper nibble -> 1's digit 0107 XX Health / Energy Tanks Lower nibble -> 10's of health upper nibble -> filled tanks 0108 XX Initiate momentary pause after a boss is killed 2.0 0109 XX Initiate momentary pause after an item is picked up 2.0 010A XXXX End game escape timer 2.0 010E XX Missiles enabled toggle (1 = yes) 1.0 0200 to 02FF OAM - This page of memory is reserved for OAM (sprite) data which is transferred to PPU each frame via DMA. 0300 to 03FF Object Memory - The game stores data for "objects". Each object has (at least) 16 bytes. 0300 XX Object - Samus 0301 XX Samus - Vertical "radius" 0302 XX Samus - Horizontal "radius" 0303 XX Samus - Index for sprite layout ptr table for current frame 0304 XX Samus - Number of video frames for current sprite animation frame 0305 XX Samus - Index of sprite frame layout to reset to when animation finishes 0306 XX Samus - Index for animation sequence ptr table for current animation 0307 XX Samus - Toggle when Samus on elevator 1.0 0308 XX Samus - Vertical speed (signed) 0309 XX Samus - Horizontal speed (signed) 030A XX Samus - Toggle when Samus is hit by an enemy 1.0 030B XX Samus - Toggle when Object on screen (active) 1.0 030C XX Samus - Toggle of screen of object 030D XX Samus - Y position (within room, NOT screen coordinates) 030E XX Samus - X position (within room, NOT screen coordinates) 030F XX Samus - Vertical distance from the point from which player jumped (presumably cumulative) 0310 XX Samus - sub-pixel: Y position 0311 XX Samus - sub-pixel: X position 0312 XX Samus - sub-pixel: Vertical speed 0313 XX Samus - sub-pixel: Horizontal speed 0314 XX Samus - sub-pixel: Samus gravity 0315 XX Samus - sub-pixel: Horizontal acceleration 0316 XX Samus - sub-pixel: Horizontal max speed 0320 XXXX Elevator (also used for cursor Title/Password screens) 0330 XXXX Unused 0340 XXXX ¨Power Up 0350 XXXX Unused 0360 XXXX Tourian Bridge 0370 XXXX Tourian Bridge (again) 0380 XXXX Door 1 0390 XXXX Door 2 03A0 XXXX Door 3 03B0 XXXX Door 4 03C0 XXXX Unused 03D0 XXXX Bullet / Bomb / Missile 03E0 XXXX Bullet / Bomb / Missile (again) 03F0 XXXX Bullet / Bomb / Missile (again) 0400 to 04FF Enemy Memory - This memory is used much like object memory, but for enemies and pickups (blocks of 16 bytes) 04_0 XX Y position in room (not actual screen position). 04_1 XX X position in room (not actual screen position). 04_2 XX ? 04_3 XX ? 04_4 XX ? 04_5 XX ? 04_6 XX Counter - Counts such things as explosion time 04_7 XX ? 04_8 XX ? 04_9 XX Delay counter between enemy actions 04_A XX ? 04_B XX Current hit points of enemy 04_C XX ? 04_D XX Despawn timer for pickups, ? for enemies 04_E XX ? 04_F XX Bit 7 set=tough version of enemy, bit 6 set=mini boss. 0500 to 05FF This memory has various uses, including additional variables for some objects/enemies (not sure which one or if both), as well as variables for breakable blocks that need to respawn. 0500 XX Tile Routine 0503 XX Tile Anim Frame 0504 XX Tile Anim Delay 0506 XX Tile Anim Index 0507 XX Tile Delay 0508 XXXX Tile WRAM pointer 050A XX Tile Type 0600 to 06FF Sound Engine - This section consists mostly of variable names from the Metroid disassembly, and the variables' descriptions. 0600 XXXX Music SQ1 Period 0602 XX Game paused toggle (1=paused) 1.0 0603 XX Pause Music SFX plays if less than 0x12 0604 XXXX Music SQ2 Period 0606 XX ? 0607 XX Write data toggle (1=data needs to be written) 0608 XXXX Music Tri Period 0610 XXXX Triangle Period 0612 XXXX Triangle Change 0614 XXXX Triangle Percentage Stores percent to change period by each frame 0616 XX Percent Difference (1/N), if=0A, percent=1/10 (10%) 0617 XX Divide Data 061F XX Bit 7 set=has long beam, bit 0 set=has ice beam The following addresses are loaded into $0640 thru $0643 when those addresses decrement to zero. These addresses do not decrement. 0620 XX SQ1FrameCountInit - Holds number of frames to play sq1 channel data 0621 XX SQ2FrameCountInit - Holds number of frames to play sq2 channel data 0622 XX TriangleFrameCountInit - Holds number of frames to play triangle channel data 0623 XX NoiseFrameCountInit - Holds number of frames to play noise channel data 0624 XX SQ1RepeatCounter - Number of times to repeat SQ1 music loop 0625 XX SQ2RepeatCounter - Number of times to repeat SQ2 music loop 0626 XX TriangleRepeatCounter - Number of times to repeat Triangle music loop 0627 XX NoiseRepeatCounter - Number of times to repeat Noise music loop 0628 XX SQ1DutyEnvelope - Loaded into SQ1Cntrl0 when playing music 0629 XX SQ2DutyEnvelope - Loaded into SQ2Cntrl0 when playing music 062A XX TriLinearCount - disable\enable counter, linear count length 062B XX NoteLengthTblOffset - Stores the offset to find proper note length table 062C XX MusicRepeat - 0=Music does not repeat, Nonzero=music repeats 062D XX TriangleCounterCntrl - $F0=disable length control, $00=long note, $0F=short note 062E XX SQ1VolumeCntrl - Entry number in VolumeCntrlAdressTbl for SQ1 062F XX SQ2VolumeCntrl - Entry number in VolumeCntrlAdressTbl for SQ2 0630 XX SQ1LowBaseByte - low byte of base address for SQ1 music data 0631 XX SQ1HighBaseByte - High byte of base address for SQ1 music data 0632 XX SQ2LowBaseByte - low byte of base address for SQ2 music data 0633 XX SQ2HighBaseByte - High byte of base address for SQ2 music data 0634 XX TriangleLowBaseByte - low byte of base address for Triangle music data 0635 XX TriangleHighBaseByte - High byte of base address for Triangle music data 0636 XX NoiseLowBaseByte - low byte of base address for Noise music data 0637 XX NoiseHighBaseByte - High byte of base address for Noise music data 0638 XX SQ1MusicIndexIndex - Index to find sQ1 sound data index. Base=$630,$631 0639 XX SQ2MusicIndexIndex - Index to find SQ2 sound data index. Base=$632,$633 063A XX TriangleMusicIndexIndx - Index to find Tri sound data index. Base=$634,$635 063B XX NoiseMusicIndexIndex - Index to find Noise sound data index. Base=$636,$637 063C XX SQ1LoopIndex - SQ1 Loop start index 063D XX SQ2LoopIndex - SQ2 loop start index 063E XX TriangleLoopIndex - Triangle loop start index 063F XX NoiseLoopIndex - Noise loop start index 0640 XX SQ1MusicFrameCount - Decrements every sq1 frame. When 0, load new data 0641 XX SQ2MusicFrameCount - Decrements every sq2 frame. when 0, load new data 0642 XX TriangleMusicFrameCoun - Decrements every triangle frame. When 0, load new data 0643 XX NoiseMusicFrameCount - Decrements every noise frame. When 0, load new data 0648 XX MusicSQ1Sweep - Value is loaded into SQ1Cntrl1 when playing music 0649 XX MusicSQ2Sweep - Value is loaded into SQ2Cntrl1 when playing music 064A XX TriangleSweep - Loaded into TriangleCntrl1(not used) 064B XX ThisSoundChannel - Least sig. byte of current channel(00,04,08 or 0C) 064D XX CurrentSFXFlags - Stores flags of SFX currently being processed. 0652 XX NoiseInUse - Noise in use? (Not used) 0653 XX SQ1InUse - 1=SQ1 channel being used by SFX, 0=not in use 0654 XX SQ2InUse - 2=SQ2 channel being used by SFX, 0=not in use 0655 XX TriangleInUse - 3=Triangle channel being used by SFX, 0=not in use 065C XX ChannelType - Stores channel type being processed(0,1,2,3 or 4) 065D XX CurrentMusicRepeat - Stores flags of music to repeat 065E XX MusicInitIndex - index for loading $62B thru $637(base=$BD31). 0660 XX NoiseSFXLength - Stores number of frames to play Noise SFX 0661 XX SQ1SFXLength - Stores number of frames to play SQ1 SFX 0662 XX SQ2SFXLngth - Stores number of frames to play SQ2 SFX 0663 XX TriangleSFXLength - Stores number of frames to play Triangle SFX 0664 XX MultiSFXLength - Stores number of frames to play Multi SFX 0665 XX ThisNoiseFrame - Stores current frame number for noise SFX 0666 XX ThisSQ1Frame - Stores current frame number for sq1 SFX 0667 XX ThisSQ2Frame - Stores current frame number for SQ2 SFX 0668 XX ThisTriangleFrame - Stores current frame number for triangle SFX 0669 XX ThisMultiFrame - Stores current frame number for Multi SFX 066A XX SQ1VolumeIndex - Stores index to SQ1 volume data in a volume data tbl 066B XX SQ2VolumeIndex - Stores index to SQ2 volume data in a volume data tbl 066C XX SQ1VolumeData - stores duty cycle and this frame volume data of SQ1 066D XX SQ2VolumeData - Stores duty cycle and this frame volume data of SQ2 0670 XX NoiseSFXData - Stores additional info for Noise SFX 0671 XX SQ1SFXData - Stores additional info for SQ1 SFX 0672 XX SQ2SFXData - Stores additional info for SQ2 SFX 0673 XX TriangleSFXData - Stores additional info for triangle SFX 0674 XX MultiSFXData - Stores additional info for Multi SFX 0675 XX SQ1SQ2SFXData - Stores additional info for SQ1 and SQ2 SFX 0678 XX ScrewAttackSFXData - Contains extra data for screw attack SFX 0679 XX SQ1SFXPeriodLow - Period low data for processing multi SFX routines 0680 XX NoiseSFXFlag - Initialization flags for noise SFX 0681 XX SQ1SFXFlag - Initialization flags for SQ1 SFX 0682 XX SQ2SFXFlag - Initialization flags for SQ2 SFX(never used) 0683 XX TriangleSFXFlag - Initialization flags for triangle SFX 0684 XX MultiSFXFlag - Initialization Flags for SFX and some music 0685 XX MusicInitFlag - Music init flags 0688 XX NoiseContSFX - Continuation flags for noise SFX 0689 XX SQ1ContSFX - Continuation flags for SQ1 SFX 068A XX SQ2ContSFX - Continuation flags for SQ2 SFX (never used) 068B XX TriangleContSFX - Continuation flags for Triangle SFX 068C XX MultiContSFX - Continuation flags for Multi SFX 068D XX CurrentMusic - Stores the flag of the current music being played 0700 to 07FF Holds some data for power-ups displayed on screen and respawning tiles, as well as "PPU strings", i.e. small blocks of data to be sent to PPU. The game can manage up to two power-ups at once (this would happen if there are power-ups in connected screens, like the missiles at the top of Norfair). 0748 XX Power Up 1 Type 0749 XX Power Up 1 Y Coord 074A XX Power Up 1 X Coord 074B XX Power Up 1 NameTable (00 = name table 0, 01 = name table 3) 074F XX Power Up 1 Animation Index 0750 XX Power Up 2 Type 0751 XX Power Up 2 Y Coord 0752 XX Power Up 2 X Coord 0753 XX Power Up 2 NameTable (00 = name table 0, 01 = name table 3) 0757 XX Power Up 2 Animation Index 0780 XX Tile Size High Nibble = Y size of tile to erase Low Nibble = X size of tile to erase 0781 XX Tile byte 0 0782 XX Tile byte 1 0783 XX Tile byte 2 0784 XX Tile byte 3 0785 XX Tile byte 4 0786 XX Tile byte 5 07A0 XX Number of bytes of data to send to PPU (max $4F) 07A1 XX Data to send to PPU 6000 to 6FFF? WRAM 6000 to 63FF? Stores the tile layout for one screen 6400 to 67FF? Stores the tile layout for a second screen 6872 XX Ending type (1 to 5 for worst to best) 00 None 01 Shameful 02 Full Suit 03 Helmetless 04 Bodysuit 05 Bikini 6875 XX Index for current save file (referenced by vestigial FDS code) 6876 XX Unused 6877 XX Number of energy tanks. 6878 XX Equipment flags 01 Bombs 02 High Jump 04 Long Beam 08 Screw Attack 10 Morphing Ball 20 Varia Suit 40 Wave Beam 80 Ice Beam 6879 XX Current Missiles 687A XX Total Missiles 687B XX Kraid (bit 0 = Boss defeated, bit 7 = statue raised) 687C XX Ridley (bit 0 = Boss defeated, bit 7 = statue raised) 687D XXXXXX Game time 0003CF -> threshold for best ending (bikini) 0009CF -> threshold for the 2nd-best ending (suitless) 0015CF -> threshold for 3rd-best ending (helmetless) 0079CF -> threshold for 4th-best ending (wave, face forward) 6881 XXXX Number of times player has died (from Famicom leftover) 6883 XX Alt. ending toggle (1=End scenes playing) 6884 XX MSB set=erase selected saved game (from Famicom leftover) 6885 XX Save file to load (from Famicom leftover) 6886 XX Offset to next free slot in the item array. Divide this by two and add one to get the next 'slot' that is free 6887 XXXX Password Item tracked - Slot 1 4.3 6889 XXXX Password Item tracked - Slot 2 4.3 688B XXXX Password Item tracked - Slot 3 4.3 688D XXXX Password Item tracked - Slot 4 4.3 688F XXXX Password Item tracked - Slot 5 4.3 6891 XXXX Password Item tracked - Slot 6 4.3 6893 XXXX Password Item tracked - Slot 7 4.3 6895 XXXX Password Item tracked - Slot 8 4.3 6897 XXXX Password Item tracked - Slot 9 4.3 6899 XXXX Password Item tracked - Slot 10 4.3 689B XXXX Password Item tracked - Slot 11 4.3 689D XXXX Password Item tracked - Slot 12 4.3 689F XXXX Password Item tracked - Slot 13 4.3 68A1 XXXX Password Item tracked - Slot 14 4.3 68A3 XXXX Password Item tracked - Slot 15 4.3 68A5 XXXX Password Item tracked - Slot 16 4.3 68A7 XXXX Password Item tracked - Slot 17 4.3 68A9 XXXX Password Item tracked - Slot 18 4.3 68AB XXXX Password Item tracked - Slot 19 4.3 68AD XXXX Password Item tracked - Slot 20 4.3 68AF XXXX Password Item tracked - Slot 21 4.3 68B1 XXXX Password Item tracked - Slot 22 4.3 68B3 XXXX Password Item tracked - Slot 23 4.3 68B5 XXXX Password Item tracked - Slot 24 4.3 68B7 XXXX Password Item tracked - Slot 25 4.3 68B9 XXXX Password Item tracked - Slot 26 4.3 68BB XXXX Password Item tracked - Slot 27 4.3 68BD XXXX Password Item tracked - Slot 28 4.3 68BF XXXX Password Item tracked - Slot 29 4.3 68C1 XXXX Password Item tracked - Slot 30 4.3 68C3 XXXX Password Item tracked - Slot 31 4.3 68C5 XXXX Password Item tracked - Slot 32 4.3 68C7 XXXX Password Item tracked - Slot 33 4.3 68C9 XXXX Password Item tracked - Slot 34 4.3 68CB XXXX Password Item tracked - Slot 35 4.3 68CD XXXX Password Item tracked - Slot 36 4.3 68CF XXXX Password Item tracked - Slot 37 4.3 68D1 XXXX Password Item tracked - Slot 38 4.3 68D3 XXXX Password Item tracked - Slot 39 4.3 68D5 XXXX Password Item tracked - Slot 40 4.3 68D7 XXXX Password Item tracked - Slot 41 4.3 68D9 XXXX Password Item tracked - Slot 42 4.3 68DB XXXX Password Item tracked - Slot 43 4.3 68DD XXXX Password Item tracked - Slot 44 4.3 68DF XXXX Password Item tracked - Slot 45 4.3 68E1 XXXX Password Item tracked - Slot 46 4.3 68E3 XXXX Password Item tracked - Slot 47 4.3 68E5 XXXX Password Item tracked - Slot 48 4.3 68E7 XXXX Password Item tracked - Slot 49 4.3 68E9 XXXX Password Item tracked - Slot 50 4.3 68EB XXXX Password Item tracked - Slot 51 4.3 68ED XXXX Password Item tracked - Slot 52 4.3 68EF XXXX Password Item tracked - Slot 53 4.3 68F1 XXXX Password Item tracked - Slot 54 4.3 68F3 XXXX Password Item tracked - Slot 55 4.3 68F5 XXXX Password Item tracked - Slot 56 4.3 68F7 XXXX Password Item tracked - Slot 57 4.3 68F9 XXXX Password Item tracked - Slot 58 4.3 68FB XXXX Password Item tracked - Slot 59 4.3 6987 XX Kraid/Ridley toggle (01=present in room) 1.0 6988 to 6999 Decoded Password Bits 3.2 6988 XX Password-tracked items/doors 0 thru 7 3.2 6989 XX Password-tracked items/doors 8 thru 15 3.2 698A XX Password-tracked items/doors 16 thru 23 3.2 698B XX Password-tracked items/doors 24 thru 31 3.2 698C XX Password-tracked items/doors 32 thru 39 3.2 698D XX Password-tracked items/doors 40 thru 47 3.2 698E XX Password-tracked items/doors 48 thru 55 3.2 698F XX Password-tracked items/doors 56 thru 58(bits 0 thru 2) 3.2 6990 XX Start location(bits 0 thru 5), Samus suit status (bit 7) 5.1 6991 XX Equipment 3.3 6992 XX Missiles 2.0 6993 XX Game time (low byte) 2.0 6994 XX Game time (mid byte) 2.0 6995 XX Game time (high byte) 2.0 6996 XX Unused 6997 XX Miniboss status 3.4 6998 XX Random number 2.0 6999 XX Stores checksum 2.0 699A to 69B1 Password characters 69B2 XX "NARPAS SWORD0" Cheat flag toggle (Infinite missiles/health) 69B3 XX "JUSTIN BAILEY" Samus Suit toggle (01=Leotard) 69B4 to 6A73 password-tracked items/doors saved game data (not used). 6AF4 XX Enemy status (00=Enemy slot not in use, 04=Enemy frozen, etc) 6AF5 XX Enemy vertical "radius" 6AF6 XX Enemy horizontal "radius" 6AF7 XX Current animation frame number 6AF8 XX Number of frames to delay between animation frames 6AF9 XX First animation frame number 6AFA XX Index to current animation 6AFB XX 00=Enemy on name table 0, 01=Enemy on name table 3 6B02 XX Contains index into enemy data tables 6E00 to 6E9C Holds sprite data for stars for title screen (4 bytes each) 6EA0 to 6EAF Intro sprite 0 and sparkle sprite 6EA0 OAM Y 6EA1 OAM pattern 6EA2 OAM attribute 6EA3 OAM X 6EA4 * Index to next sparkle sprite data byte. 6EA5 * Decrements each frame. When 0, load new sparkle sprite data. 6EA6 x total movement distance. 6EA7 y total movement distance. 6EA8 * sparkle effect timer 6EA9 * sparkle type 6EAA Sprite finished toggle (01 = yes) 6EAB Not used. 6EAC x displacement of sprite movement(run). 6EAD y displacement of sprite movement(rise). 6EAE X speed (signed) 6EAF Y speed (signed) 6EB0 Intro sprite 1 and sparkle sprite: 6EC0 Intro sprite 2 6ED0 Intro sprite 3 6EE0 Intro sprite 4 6EF0 Intro sprite 5 6F00 Intro sprite 6 6F10 Intro sprite 7 -------------------------------------------------------------------------------- Description -------------------------------------------------------------------------------- 1.0 Flags +--+---+ |00|Off| |01|On | +--+---+ 2.0 Hex Numbers +----+----+-----+ +--------+----+-----+ +----------------+----+-----+ | Bin| Hex| Dec | | Bin | Hex| Dec | | Bin | Hex| Dec | +----+----+-----+ +--------+----+-----+ +----------------+----+-----+ |0000| 0| 0| |00000000| 00| 0| |0000000000000000|0000| 0| |0001| 1| 1| |00010000| 10| 16| |0001000000000000|1000| 4096| |0010| 2| 2| |00100000| 20| 32| |0010000000000000|2000| 8192| |0011| 3| 3| |00110000| 30| 48| |0011000000000000|3000|12288| |0100| 4| 4| |01000000| 40| 64| |0100000000000000|4000|16384| |0101| 5| 5| |01010000| 50| 80| |0101000000000000|5000|20480| |0110| 6| 6| |01100000| 60| 96| |0110000000000000|6000|24576| |0111| 7| 7| |01110000| 70| 112| |0111000000000000|7000|28672| |1000| 8| 8| |10000000| 80| 128| |1000000000000000|8000|32768| |1001| 9| 9| |10010000| 90| 144| |1001000000000000|9000|36864| |1010| A| 10| |10100000| A0| 160| |1010000000000000|A000|40960| |1011| B| 11| |10110000| B0| 176| |1011000000000000|B000|45056| |1100| C| 12| |11000000| C0| 192| |1100000000000000|C000|49152| |1101| D| 13| |11010000| D0| 208| |1101000000000000|D000|53248| |1110| E| 14| |11100000| E0| 224| |1110000000000000|E000|57344| |1111| F| 15| |11110000| F0| 240| |1111000000000000|F000|61440| +----+----+-----+ |11111111| FF| 255| |1111111111111111|FFFF|65535| +--------+----+-----+ +----------------+----+-----+ 3.0 Bitwise Values 3.1 Controller Buttons +--+--------+ |01| Right | |02| Left | |04| Down | |08| Up | |10| Start | |20| Select | |40| B | |80| A | +--+--------+ 3.2 Decoded Password Bits +--------------------+--------------------+--------------------+--------------------+ | 6988 | 6989 | 698A | 698B | +--+--------------------+--------------------+--------------------+--------------------+ |01| Morph Ball | Missile 02 | Missile 05 | High Jump Boots | |02| Missile 01 | Energy Tank 02 | Missile 06 | Norfair Door 03 | |04| Brinstar Door 01 | Brinstar Door 05 | Missile 07 | Screw Attack | |08| Brinstar Door 02 | Varia | Missile 08 | Missile 12 | |10| Energy Tank 01 | Energy Tank 03 | Missile 09 | Missile 13 | |20| Brinstar Door 03 | Missile 03 | Missile 10 | Norfair Door 04 | |40| Bombs | Missile 04 | Missile 11 | Energy Tank 04 | |80| Brinstar Door 04 | Norfair Door 01 | Norfair Door 02 | Missile 14 | +--+--------------------+--------------------+--------------------+--------------------+ | 698C | 698D | 698E | 698F | +--+--------------------+--------------------+--------------------+--------------------+ |01| Kraid Door 01 | Missile 18 | Energy Tank 08 | Killed Zebetite 04 | |02| Missile 15 | Kraid Door 05 | Missile 21 | Killed Zebetite 05 | |04| Missile 16 | Energy Tank 06 | Tourian Door 01 | Killed Mother Brain| |08| Kraid Door 02 | Missile 19 | Tourian Door 02 | | |10| Energy Tank 05 | Ridley Door 01 | Tourian Door 03 | | |20| Kraid Door 03 | Energy Tank 07 | Killed Zebetite 01 | | |40| Kraid Door 04 | Missile 20 | Killed Zebetite 02 | | |80| Missile 17 | Ridley Door 02 | Killed Zebetite 03 | | +--+--------------------+--------------------+--------------------+--------------------+ 3.3 Decoded Password Bits - Items +--+----------------+ |01| Bombs | |02| Hi-Jump | |04| Long Beam | |08| Screw Attack | |10| Morphing Ball | |20| Varia Suit | |40| Wave Beam | |80| Ice Beam | +--+----------------+ 3.4 Decoded Password Bits - Miniboss status +--+----------------------+ |01| | |02| | |04| | |08| | |10| Ridley Killed | |20| Ridley Statue Raised | |40| Kraid Killed | |80| Kraid Statue Raised | +--+----------------------+ 4.0 Lists 4.1 Game Mode +--+------------------------+ |00| Title Screen | |01| Transition To Respawn | |02| Transition To Respawn | |03| Playing | |04| Gameover Password | |05| Paused | |07| Ending | |08| Spawning | |09| Dying/Get Item | +--+------------------------+ 4.2 Title Mode +--+----------------------------------------+ |00| Title Screen | |01| Title Screen | |02| Title Screen | |03| Title Screen | |04| Title Screen | |05| Title Screen | |06| Title Screen | |07| Title Screen | |08| Title Screen | |09| Title Screen | |0A| Title Screen | |0B| Title Screen | |0C| Title Screen | |0D| Title Screen | |0E| Title Screen | |0F| Title Screen | |10| Title Screen | |11| Title Screen | |12| ? | |13| ? | |14| ? | |15| ? | |16| Main Menu | |17| Password Screen | |18| Continuing from Password Screen | |19| Game Over Screen | |1A| Continuing from Game Over (Password) | |1B| Main Menu | |1C| Game Over Screen | |1D| Second loop | |1E| ? | |1F| ? | +--+----------------------------------------+ 4.3 Item Slot 0325 Bombs 0771 High Jump Boots 0DF0 Screw Attack 104E Morph Ball 15E2 Varia Suit 264E Missile 1 2327 Energy Tank 2363 Energy Tank 212E Energy Tank 2353 Energy Tank 2156 Energy Tank 211D Energy Tank 2239 Energy Tank 21FD Energy Tank 28E5 Brinstar Door 1 2882 Brinstar Door 2 2B25 Brinstar Door 3 2A69 Brinstar Door 4 29E2 Brinstar Door 5 2B71 Norfair Door 1 29F0 Norfair Door 2 2A55 Norfair Door 3 2B4C Norfair Door 4 2A39 Ridley Door 1 2A1D Ridley Door 2 28F5 Kraid Door 1 28F6 Kraid Door 2 28F8 Kraid Door 3 287B Kraid Door 4 291D Kraid Door 5 2867 Tourian Door 1 2927 Tourian Door 2 292B Tourian Door 3 3800 Mother Brain Dead 3C00 Zebetite 1 Dead 4000 Zebetite 2 Dead 4400 Zebetite 3 Dead 4800 Zebetite 4 Dead 4C00 Zebetite 5 Dead 5.0 Mix 5.1 Samus Start/Suit Status +--+----------------+ |00| Brinstar | |01| Norfair | |02| Kraid's Lair | |03| Tourian | |04| Ridley's Lair | |05| *Reset to title| |06| *Reset to title| |07| *Reset to title| +--+----------------+ +--+----------------------------+ |08| *Reset to title | |10| *Reset to title | |20| *Reset to title | |40| *Reset to title | |80| Zero Suit Active (Loop 2+) | +--+----------------------------+